Dueling Network Architecture for Deep Reinforcement Learning 论文精读

导读

本文主要对论文Dueling DQN https://arxiv.org/pdf/1511.06581.pdf 提出的背景知识,解决的问题,带来的优势及其原因进行一些解读和分享。

从Q-Learning到DQN

强化学习入门先学习了Q-Learning,因为states可能有千千万万,对应states*action个q-value值,随着states的增加,会有内存不够的问题。怎么办?DQN(Deep Q Network)出现了,其原理就是将state&action共同作为输入,所有action对应的q-value作为输出,将q-value函数的模拟,由DQN网络参数来替代。DQN的原理不再赘述,简单回顾一下数学公式:

$L{i}(\theta{i})=E{s,a,r,s’}[(y{i}^{QDN}-Q(s,a;\theta_{i}))^{2}]$

$y{i}^{DQN}=r+\gamma max{a} Q(s’,a’;\theta^{-})$

在这里我们依然可以用q-learning的方法去估计 $\theta$ ,但是实际这样做表现比较差(为什么?文章没说)。

后来有人提出,可以将q-target网络参数固定几轮,与此同时更新q-eval。采用这种方法,可以极大提高算法的稳定性。这种方法是属于off-policy的,因为其选择action的时候,是根据线下的greedy policy,而不是根据线上实时学到的policy。

另外一个DQN很重要的方法,是experience replay。也就是说DQN网络不仅仅记住当前的state,它还会记忆之前的state,存到memory,每次更新的时候,随机从memory里选取一些state,也就是random sample一个mini-batch的states出来。experience replay通过重复利用数据,增加了数据的有效性,又因为每次随机从记忆池抽样,可以减少每次更新所用样本的方差。

从DQN到Double DQN